# Dockerfile

# 1. 选择一个包含完整 Shell 环境的官方 uv 镜像
FROM ghcr.io/astral-sh/uv:0.8.0-python3.13-bookworm-slim

# 2. 设置环境变量
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# ！！！如果是国内使用阿里源比较方便
ENV UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/

# 3. 设置工作目录
WORKDIR /code

# 4. 利用缓存，先复制依赖文件并用 uv 安装
COPY pyproject.toml ./
# 如果有 uv.lock 文件，也复制进来
# COPY uv.lock ./
RUN uv sync --no-cache

# 5. 复制所有应用代码
COPY . .

# 将 venv 的 bin 目录添加到 PATH
ENV PATH="/code/.venv/bin:$PATH"

# 6. 暴露端口
EXPOSE 80

# 7. 定义启动命令
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]